package com.cssw.fyzb.busi.service.video;

import com.cssw.fyzb.core.model.dodb.CmfUserMusic;
import com.cssw.fyzb.core.model.dodb.CmfUserVideo;
import com.cssw.fyzb.core.model.mos.VideoStatMo;

import java.util.Date;

/**
 * @author Feng Chen
 */
public interface VideoStatService {

    /**
     * 查询视频统计信息
     *
     * @param videoId
     * @return
     */
    VideoStatMo findByVideoId(Long videoId);

    /**
     * 增加点赞数
     *
     * @param videoId
     */
    void incLikes(Long videoId);

    /**
     * 减少点赞数
     *
     * @param videoId
     */
    void decLikes(Long videoId);


    /**
     * 增加浏览数
     *
     * @param videoId
     */
    void incViews(Long videoId);

    /**
     * 增加评论数
     *
     * @param videoId
     */
    void incComments(Long videoId);

    /**
     * 增加分享数
     *
     * @param videoId
     */
    void incShares(Long videoId);


    /**
     * 获取音频
     *
     * @return com.cssw.fyzb.core.model.dodb.CmfUserMusic
     * @Param [musicId]
     **/
    CmfUserMusic getCmfUserMusic(int musicId);

    /**
     * 存入es
     *
     * @return
     * @Param
     **/
    void save(
            Long userId, Long vedioId, String title, String media, String cover, String city, String lat, String lng, Integer createTime
            , Integer musicId, String musicTitle, String musicAuthor, String musicImgUrl, String musicLength, String musicFileUrl,
            String musicFormat, String anyway, Integer classId);
    /**
     * 同步视频数据去es
     * @param videoId
     * @param type
     */
    void syncToEs(Long videoId, String type);

    CmfUserVideo getCmfUserVideo(Long id);

    long deleteById(Long id, Date createDate);
}
